Methods, apparatuses, and systems for measuring the amount of material dispensed from a container using an accelerometer

ABSTRACT

The application discloses a device that determines how much material is dispensed from a container by measuring the angle at which the container is tilted. The device includes an accelerometer for measuring an angle by which the container is tilted, and an electronic component for transmitting data based on the angle measured by the accelerometer. In some embodiments, the accelerometer measures the angle by which the container is tilted at a multiple different times.

CLAIM OF BENEFIT TO PRIOR APPLICATIONS

This patent application claims benefit of an earlier-filed U.S.Provisional Patent Application entitled “Methods, Apparatuses, andSystems for Measuring the Amount of Material Dispensed from a ContainerUsing an Accelerometer,” filed on Mar. 23, 2009, and having Ser. No.61/274,110. The current patent application is also a continuationapplication of an earlier-filed U.S. Non-Provisional Patent Applicationentitled “Methods, Apparatuses, and Systems for Sensing when a Spoutwith Sliding Cork Stem is Inserted Into a Container Using a Magnet and aMagnetic Sensor,” filed on Mar. 23, 2009 now abandoned, and having Ser.No. 12/383,462. U.S. patent application Ser. No. 12/383,462 claimsbenefit of an earlier-filed U.S. Provisional Patent Application entitled“Methods, Apparatuses, and Systems for Measuring and Tracking DispensedMaterials,” filed on Mar. 23, 2008, and having Ser. No. 61/038,765; andU.S. Provisional Patent Application entitled “Method, Apparatus, andSystem for Measuring Amount of Material Dispensed from Containers,”filed on Mar. 23, 2008, and having Ser. No. 61/038,767. The contents ofU.S. patent application Ser. Nos. 61/274,110, 12/383,462, 61/038,765,and 61/038,767 are herein incorporated by reference.

FIELD OF THE INVENTION

The invention relates to methods, apparatuses and systems for monitoringthe amount of liquid, gels, powders, and solids dispensed fromcontainers.

BACKGROUND OF THE INVENTION

Liquids, gels, powders and solids are dispensed from containers invarious industries for retail, commercial and industrial use. Themeasurement and centralized tracking of the amounts of materialsdispensed is important to a business to control costs, ensure qualitycontrol, monitor employee performance, manage inventories, and ensurerevenue.

Examples of materials that need to be measured and tracked includeliquor, wine, beer, coffee, juices and premixed drinks in thehospitality industry, oil, fluids, materials used in industrial andmachine environments, and liquids required in the creation of solutionsin the medical and veterinary environments.

In some of the commercial uses of liquids, gels, powders, and solids,dispensing devices use various methods to control or portion thequantities of materials dispensed. In some cases, the amount ofmaterials to be dispensed is not predetermined and is variable based onthe arbitrary actions of a human operator or randomly or variablydispensed by a machine.

Therefore, a need exists for better methods and processes formonitoring, measuring, and tracking the dispensing of random and/orvariable quantities of a liquid, gel, powder, or solid, and storing thatinformation for various business purposes.

SUMMARY OF THE INVENTION

Many of the methods and apparatuses of various embodiments disclosedherein relate to the tracking of inventory and the tracking of dispensedmaterial. Some embodiments use monitoring devices of various kinds tomeasure the number of containers used or the amount of materialdispensed from each container. The monitoring devices of suchembodiments transmit their data to a central tracking system.

Some embodiments track the amount of dispensed material by the use ofelectronic spouts inserted into the containers that contain thematerials (e.g., a bottle that contains alcohol). Different embodimentstrack various actions by user of the devices. For example, someembodiments track whether a spout has been inserted into a containerand/or whether the spout has been removed from the container. Some suchembodiments include channels that allow fluid to leak if the spout isplaced in the container in a way that does not activate the trackingcircuitry.

Some embodiments track the amount of a material that has been dispensedby measuring the angle at which the container is tilted (e.g., with anaccelerometer on the spout or on the container). Given the angle atwhich material is dispensed and various other characteristics (e.g.,viscosity of a liquid being poured), the methods of these embodimentsare able to calculate how much of the material has been dispensed. Stillother embodiments use a sonar system with an audio amplifier and amicrophone to determine how much material is left in a container beforeand after material is poured out.

Some embodiments provide power saving by deactivating or reducing theactivity of monitoring devices when material is not pouring. Forexample, some embodiments include a tilt switch to determine when acontainer is in a position to pour out material. Some embodimentsprovide similar power saving by using a vibration sensor to determinewhen material is actually pouring out of a container based on thevibrations that such pouring creates in the container.

Some embodiments include reprogrammable devices that are primed toaccept new programming when the devices are shaken. In some suchembodiments, the devices receive programming through infraredcommunications. In other embodiments, the devices receive programmingthrough wireless communications. The following paragraphs describe somemore specific aspects of various embodiments.

Some embodiments provide a spout that detects whether it has beeninserted into an open orifice of a container. The spouts of someembodiments include a first component for inserting into a container, asecond component for inserting into the first component, a magneticforce sensor attached to one of the components, and a magnet attached tothe component to which the magnetic force sensor is not attached. Insome embodiments, the insertion of the second component into the firstcomponent causes the magnet to affect the magnetic force sensor, therebyindicating that the spout is inserted into the container to seal thecontainer. Other embodiments include a similar system in which themagnetic sensor and the magnet are internal parts of a spout that do notslide relative to one another. In some such embodiments, the magneticsensor is activated when the pressure of the insertion on a pressuredeformable part of the spout pushes the magnet close to the magneticsensor (or pushes the magnetic sensor close to the magnet). Still otherembodiments provide a pressure activation contact switch in whichpressure on pressure deformable part of the spout due to an insertioncauses an electrical contact to be made in the spout that indicates theinsertion.

Some embodiments provide a method for detecting when a spout is insertedinto an open orifice of a container. The method detects that a magneticsensor attached to a first component of the spout is affected by amagnet attached to a second component of the spout. One of thecomponents is for inserting into the container and the other componentis for inserting into the component that is for inserting into thecontainer. A predetermined time after the detection, the methoddetermines whether the magnetic sensor remains affected by the magnet.When the magnetic sensor remains affected by the magnet, the methoddetermines that the spout is inserted into the open orifice of thecontainer. Other embodiments provide similar methods for detecting theinsertion of spouts with magnetic sensors activated by pressuredeformable material or pressure activation contact switches.

Some embodiments provide a system for monitoring containers at anestablishment, the system includes multiple spouts. At least one of thespouts includes a first component for inserting into a container, asecond component for inserting into the first component, a magneticforce sensor attached to one of the components, and a magnet attached tothe component to which the magnetic force sensor is not attached. Theinsertion of the second component into the first component causes themagnet to affect the magnetic force sensor, thereby indicating that thespout is inserted into the container to seal the container. The systemalso includes a local computer at the establishment for collecting datatransmitted by the spouts. The systems of some embodiments are capableof monitoring containers with spouts of any of the types mentionedabove. In some embodiments, the systems are capable of trackingcontainers with multiple spouts, or even containers that are tracked bydevices other than spouts.

Some embodiments provide a spout that attaches to a container (e.g., abottle) in a novel manner. The spouts of these embodiments include a setof annular rings oriented parallel to a cross section of an opening ofthe container. The set of annular rings seals the opening of thecontainer so that the spout becomes the only egress for the contents ofthe container. The spouts of these embodiments also include a set ofridges separate from the annular rings. The ridges are orientedperpendicular to the cross section of the opening. The set of ridgeshold the spout in the container by frictional forces.

Some embodiments provide a device that determines how much material isdispensed from a container by measuring the angle at which the containeris tilted. In some embodiments, such devices include an accelerometerfor measuring an angle by which the container is tilted and anelectronic component for transmitting data based on the angle measuredby the accelerometer. In some embodiments, the accelerometer measuresthe angle by which the container is tilted at a multiple differenttimes.

Some embodiments provide a method for measuring the amount of materialdispensed from a container. The method measures an angle by which thecontainer is tilted (e.g., using an accelerometer that is part of adevice attached to the container. The method generates data based on theangle measurement and transmits the generated data to some externalsystem.

In some embodiments, the external system receives data transmitted fromsuch a device attached to a container. In some embodiments, the dataincludes an estimate of the amount of material dispensed from thecontainer that is generated based on measurements of angles by which thecontainer is tilted. In some embodiments, the data received by theexternal system is generated by the device based on an assumption thatthe material is a known, baseline material. The method of someembodiments identifies the material dispensed from the container basedon an identifier in the received data. The method calculates the actualamount of material dispensed by using an offset that accounts for adifference in viscosity between the known, baseline material and theidentified material.

Some embodiments include devices with features that are only needed whenthe container is tilted. The devices of some such embodiments include amonitoring device for measuring data that is used to calculate theamount of material dispensed from the container. The monitoring devicetakes measurements at variable time intervals. The devices also includea tilt switch connected to the monitoring device that detects when thecontainer is tilted by at least a particular tilting angle. Thus thedevice can vary the time intervals at which measurements are taken(e.g., by the monitoring device) based on whether the container istilted by at least the particular tilting angle. In some embodiments,decreasing the rate of monitoring when the tilt switch is not activatedsaves power.

Some embodiments include a temperature sensor to help determine thevolume of material dispensed. For example, the density or viscosity of amaterial may be affected by temperature, which would affect thecalculations of the pour rate.

Some embodiments provide devices with an accelerometer that detectsfrictional vibrations created when material is dispensed from thecontainer. Such accelerometers can be used in a similar manner to thetilt switch described above. When the accelerometer detects frictionalvibrations from material being dispensed, the device increases thefrequency at which it monitors instruments that directly or indirectlymeasure the flow of material from a container. Some embodiments includedevices, such as spouts for containers that are reprogrammable (e.g.,for updating data and firmware updates). The spout of some embodimentsincludes a processor for controlling various electronic components ofthe spout according to a set of instructions, an electronic storagedevice for storing the set of instructions for the processor, and asensor for receiving instructions via wireless transmission from anexternal source. The received instructions are used to modify the set ofinstructions stored on the electronic storage device of the spout. Someembodiments use an infrared sensor or a magnetic sensor. Someembodiments prepare to receive reprogramming when a vibration detectingsensor determines that the spout is being shaken. Other embodimentsprovide a spout with two-way communication to an external system that isable to signal the spout to accept reprogramming.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 conceptually illustrates an overview of some embodiments.

FIG. 2 illustrates the functionality of a sliding cork stem used in someembodiments.

FIGS. 3A-3B illustrate some embodiments that use a magnet and magneticsensor to determine when a pouring device is inserted or removed from acontainer.

FIGS. 4A-4C illustrate some embodiments that use a cork designed todistinctly differentiate the functional purposes of frictional hold andliquid sealing.

FIG. 5 illustrates some embodiments including a sliding cork stem thatuses a magnet and a magnetic sensor to determine when the sliding corkstem is inserted or removed from a container.

FIG. 6 conceptually illustrates a process used in some embodiments thatuses a magnet and a magnetic sensor on a sliding cork stem to determinewhen a pouring device is inserted in a container.

FIG. 7 illustrates a special cork used in some embodiments that includespressure deforming material that expands with compression force on a finor fins.

FIGS. 8A-8C illustrate some embodiments that use pressure deformingmaterial to activate a magnetic sensor which determines when a pouringdevice is inserted or removed from a container.

FIG. 9 conceptually illustrates a process used in some embodiments thatuses a magnet adjacent to pressure deforming material and a magneticsensor to determine if a pouring device is inserted in a container.

FIG. 10 illustrates a top down sectional view of some embodiments thatuse pressure deforming material to activate a magnetic sensor whichdetermines when a pouring device is inserted or removed from acontainer.

FIGS. 11A-11C illustrate some embodiments that use pressure-deformingmaterial to activate a physical contact switch which determines when apouring device is inserted or removed from a container.

FIG. 12 conceptually illustrates a process used in some embodiments thatuses a magnet adjacent to pressure deforming material and a magneticsensor to determine when a pouring device is inserted in a container.

FIG. 13 illustrates a top down sectional view of some embodiments thatuse pressure deforming material to activate a contact switch whichdetermines when a pouring device is inserted or removed from acontainer.

FIGS. 14A-14B illustrate some embodiments that provide an accelerometeron an electronic circuit board housed in a pouring device.

FIG. 15 illustrates some embodiments that provide an accelerometerattached to the outside or inside of a container.

FIG. 16 illustrates a circuit board with various electronic componentsincluded in some embodiments.

FIG. 17 illustrates the use of an accelerometer to measure the angle ofa container at different times.

FIG. 18 illustrates the use of an accelerometer to measure the positionof a container at different times.

FIG. 19 illustrates the use of an accelerometer to measure the positionand angle of a container at different times.

FIG. 20 illustrates the use of a tilt switch to determine when acontainer has been moved from its non-inclined position.

FIG. 21 conceptually illustrates a process of some embodiments formonitoring, recording, and transmitting pour data with an accelerometer.

FIG. 22 conceptually illustrates a process of some embodiments formeasuring the temperature of material being dispensed from a containerand transmitting this information with other pour data.

FIGS. 23A-23C illustrate graphs showing the relationship between thedispensing rate and the angle of dispensing, and the difference indispensing rate of materials with a different viscosity or density.

FIG. 24 conceptually illustrates a process of some embodiments ofinvention for calculating the volume of material dispensed from acontainer by measuring the angle of inclination and duration of timematerial is being dispensed.

FIGS. 25A-25B illustrate a process of some embodiments for a device thatcalculates the volume of material dispensed from a monitored containerby measuring the angle of inclination and duration of time material isbeing dispensed.

FIG. 26 conceptually illustrates a process of some embodiments for acomputer system to process data from a spout.

FIG. 27 illustrates some embodiments that use an infrared or magneticsensor that receives signals to change or reprogram the software for acircuit board on a spout.

FIGS. 28-29 illustrate some embodiments that use a microphone and audioamplifier attached to the inside of a container to measure the change involume of material in the container.

FIG. 30 conceptually illustrates a process of some embodiments forchanging or reprogramming the software for a circuit board on a spout.

FIGS. 31A-31B illustrate some embodiments that use a physical resistancesensor in the dispensing channel of a container to measure the volume ofmaterial dispensed from the container.

FIGS. 32A-32D illustrate flexible electronics boards used in someembodiments that are used in conjunction with a plastic holder andholding clips to allow for the smallest possible enclosures to house theelectronics.

FIGS. 33A-33B illustrate a battery stacked above or below the plane of acircuit board in order to reduce the overall dimensional area needed inengineering in some embodiments.

FIG. 34 illustrates a computer system with which some embodiments areimplemented.

DETAILED DESCRIPTION OF THE INVENTION

In the following description, numerous details are set forth for purposeof explanation. However, one of ordinary skill in the art will realizethat the invention may be practiced without the use of every specificdetail. In other instances, well-known structures and devices are shownin block diagram form in order not to obscure the description of theinvention with unnecessary detail.

The invention is directed towards methods, apparatuses, and systems formonitoring the amount of a material (e.g., liquid, gels, powders, andsolids) dispensed from a container. In some embodiments, the material isan alcoholic beverage. FIG. 1 shows an overview of some embodiments.Individual devices 105 (sometimes referred to herein as “pouringdevices”, “dispensing orifices”, or “spouts”) are placed on containers100 that dispense materials (e.g., liquids, gels, powders, or solids).For simplicity, only one device and one container are shown in FIG. 1.

The devices 105 measure the distribution of the materials from thecontainers 100 in real-time through various methods. In someembodiments, the devices 105 can include an accelerometer 113 to measureangle of inclination of containers 100 as they pour/dispense material.In other embodiments, the devices 105 can include a speaker 114 andmicrophone 116 in which a pulse of sound is emitted from the speaker 114and heard by the microphone 116 in which the delay in time determinesthe amount of material in the container 100. In some embodiments, theelectronics contained in the device will also include a physical contactswitch or magnetic sensor (sometimes referred to as a magnetic switch)110, an internal processor 112, a clock 117, a transceiver 118 and anoptimized antenna 120.

The information related to the distribution of the material from themonitoring device is communicated to a central computer either bywireless communication or via a directly wired connection. In someembodiments, the device information is stored within internal devicememory (not shown—in some embodiments, memory is part of the internalprocessor; other embodiments include internal memory outside theinternal processor) until it is distributed to the central computer. Inother embodiments, the device information is transmitted in real-timefrom the transceiver 118 through a radio frequency communication to atransceiver 125 connected to a network, the Internet, or directly to acomputer 130.

In some embodiments, the information sent from the transceiver 118 israw data from the device 105. In some such embodiments, the internalprocessor of the device does not perform any of the calculations thatdetermine how much material has been dispensed from the container. Inother embodiments, the internal processor 112 performs calculations onthe raw data from the device 105 before sending the information. Forinstance, in some embodiments the internal processor performs some orall of the calculations that determine how much material (e.g., liquid,gel, powder, or solid) has been dispensed from a container based on theraw data. Ultimately, the information is received, processed, and storedon software that runs on a computer 140, server 135, etc. and includesinformation for one device or many devices in a distributed environment.

Some embodiments receive, process, and store information from devices105 that are at multiple establishments. Generically, an establishmentis any location in which materials (e.g., liquids, powders, gels, orsolids) are dispensed. In some embodiments, the multiple establishmentsare multiple bars, restaurants, or other establishments that servealcoholic beverages. In the case of embodiments that partially performcalculations on the device 105, any further processing is done by thesoftware on computer 140, server 135, etc. Some embodiments providetwo-way communication between the device and the servers 135 or computer140. In these embodiments, the devices 105 not only send information tothe software through a network, a network of networks (such as theInternet) or directly to a computer 130, but the software is also ableto communicate information, time/date coordination, commands,instructions, calibrations or firmware upgrades to the devices 105through the transceiver 118. The software of some embodiments providesthe individual and aggregated device information, calculations andextrapolations on a computer 130 or 140, server 135, or other computingdevice.

Various embodiments include a variety of different features. Some of theembodiments of removable pouring devices monitor whether the device isplaced on a pouring orifice of a container containing liquids, gels,powders, or solids. Some embodiments of removable pouring devicesmonitor whether the device is removed from a pouring orifice of acontainer containing liquids, gels, powders, or solids. In someembodiments, the devices monitor both whether the devices have beenplaced on a container and whether the devices have been removed from thecontainer. Some embodiments of the devices measure the amount of timefor which liquids, gels, powders, or solids are poured through adispensing orifice. Some embodiments measure the angle of inclination ofa container from which liquids, gels, powders, or solids are pouredthrough a dispensing orifice. Some embodiments measure the temperatureof materials within a container from which liquids, gels, powders, orsolids are poured through a dispensing orifice. Some embodiments measurethe displacement rate and volumes of air which pass into the containerfrom which liquids, gels, powders, or solids are poured through thedispensing orifice. Some embodiments measure the actual volumes ofmaterial in a container, over a rapid sequence of time intervals, fromwhich liquids, gels, powders, or solids are poured through thedispensing orifice. Some embodiments measure the pressure/force ofliquids, gels, powders, or solids as they exit out of a containerthrough a dispensing orifice. A person having ordinary skill in the artwill realize that some embodiments will include only one of the abovedescribed features, while other embodiments will include more than oneof the above described features.

I. Sliding Cork Stem

The spouts of some embodiments include a bottom portion that is insertedinto the opening of a container (e.g., a liquor bottle). In someembodiments, the bottom portion of the spout includes a “cork” thatflexes to snuggly attach the spout to the container. The term “cork” asused herein refers to a portion of the spout that grips the containerand provides a seal that prevents any material from flowing around thespout rather than through the spout. The term “cork” is used genericallyto identify the function of the cork, not to limit it to the tree basedmaterial called “cork”. Instead, the cork could be made of any materialservicing these functions. Some embodiments provide removable corks indifferent sizes in order to fit different types of containers. Thespouts described herein include a fluid-flow passageway to allow theliquids or other materials to flow/pass through the spout. In someembodiments, the fluid flow passageway is designed to ensure laminar(smooth and unturbulent) flow of a liquid when a liquid container andhence the spout are inclined at a certain angle (e.g., 20 degrees) pastthe horizontal axis of the liquid container. For example, in someembodiments, the ratio of the passageway's length to its width (ordiameter) is equal to or less than 20 in order to ensure laminar fluidflow. When properly placed, the spouts of some embodiments seal thecontainers, meaning that the fluid flow passageway of the spout becomesthe only way for material to exit the container while the spout is inplace. Various spouts are described in more detail below.

FIG. 2 illustrates a sliding stem 200 (also referred to as a slidingcork stem), that is part of a spout that is inserted into a containerused in some embodiments. As shown, the sliding stem 200 includes asliding component 215 (also referred to as an “interior housing unit”)connect to the top of the spout 218 and a stationary component 210 (alsoreferred to as an “exterior housing unit”). The stationary component 210is stationary relative to the top of the container in which it isinserted (not shown), while the sliding component 215 slides relative tothe top of the container in which it is inserted (not shown). Thesliding component 215 includes a top lip 228, a bottom lip 225, and ahollow center 224 that allows liquid or other materials to pass throughthe sliding stem 200. The stationary component 210 also includes a toplip 223 and a bottom lip 220, both of which are hollow in the center toallow liquids or other materials to pass through the sliding stem 200.When the sliding stem 200 is in an extended state, in section 230, thetop lip 223 of the stationary component 210 is in contact with thebottom lip 225 of the sliding component 215, providing an extensionlimit for the sliding stem 200. When the sliding stem 200 is in acompressed state, in section 240, the bottom lip 220 of the stationarycomponent 210 is in contact with the bottom lip 225 of the slidingcomponent 215 and the top lip 223 of the stationary component 210 is incontact with the top lip 228 of the sliding component 215, providingphysical contact between the stationary component 210 and slidingcomponent 215 of the sliding stem 200.

Sliding stem 200 also includes a fin 245 made of malleable material andfluid flow channels 235 in some embodiments. As shown, in section 250,when the sliding stem 200 is in an extended state, material is able toflow freely through the fluid flow channels 235. In some embodiments,the fluid flow channels 235 are narrow tube, in other embodiments theyextend around the stem. In the extended state of the sliding stem 200,material would leak profusely from the container through the fluid flowchannels 235 when a pour was attempted. As shown, in section 260, whenthe sliding stem 200 is in a compressed state, the compression forcesthe fin 245 to block the fluid flow channels 235. Because the slidingstem 200 leaks when extended, the user of the device is forced to makesure that the sliding stem 200 is fully compressed. This is usefulbecause the magnetic sensor of some embodiments is activated when thesliding stem 200 is in a compressed state, as further described below.In the compressed state of the sliding stem 200, frictional force holdsthe fin 245 in place and prevents the sliding component 215 and thestationary component 210 from separating.

A. Sliding Activation of Magnetic Sensor

FIGS. 3A-3B illustrate a spout 305 that is inserted into a container 100in some embodiments. As shown, the spout 305 includes a sliding stemthat has a sliding component 315 and a stationary component 310. Thespout 305 also includes a magnet 320 and a magnetic sensor 325. In theembodiments illustrated in FIG. 3A-3B, the action of connecting thespout 305 to the container 100 is detected through the sliding corkstem. In some embodiments, the sliding component 315 of the stemincludes the magnetic sensor 325 and a circuit board (not shown) and thestationary component 310 of the stem includes the magnet 320. In otherembodiments, the sliding component 315 of the stem includes the magnet320 and the stationary component 310 of the stem includes the magneticsensor 325 and a circuit board (not shown). In its non-inserted state(e.g., before the sliding stem is compressed during insertion of thespout into the container), illustrated in FIG. 3A, the magnet 320 has noeffect on the magnetic sensor 325. When the sliding stem is placedwithin a container 100 (inserted state), as illustrated in FIG. 3B, theforce of the insertion pushes the stationary component 310 along thesliding component 315 of the stem so that the magnet 320 affects themagnetic sensor 325. In some embodiments, the state of the magneticsensor 325 (inserted or non-inserted) is captured through a circuitboard (not shown) and used to activate various functions within thefirmware within the circuit board.

FIG. 5 illustrates a sliding cork stem 500 that detects when it isinserted into a container in some embodiments. As shown, the slidingcork stem 500 includes a dispensing channel 540, a magnetic sensor 525attached to a circuit board 535, and a magnet 520 that gives off amagnetic effect 550. When the sliding cork stem 500 is in an extendedstate, i.e., not inserted in a container, in section 505, the magneticsensor 525 is not activated by the magnetic effect 550 from the magnet520. When the sliding cork stem 500 is in a compressed state, i.e.,inserted in a container, in section 510, the magnetic sensor 525 isactivated by the magnetic effect 550 from the magnet 520. The state ofthe magnetic sensor 525 (inserted or non-inserted) is captured throughthe circuit board 535 and used to activate various functions within thefirmware within the circuit board 535. In some embodiments, thepositions of the magnet 520 and the magnetic sensor 525 attached to thecircuit board 535 are switched.

B. Multiple Fins with Distinct Functions

FIGS. 4A-4C illustrate a cork designed to distinctly differentiate thefunctional purposes of frictional hold and liquid sealing capabilitiesin some embodiments. Typical cork designs use fins oriented to thecross-sectional plane of a liquid container opening. Such fins functionwith two primary purposes—to provide frictional hold and to provide aliquid seal. In some embodiments, various cork fins are used fordistinct functional purposes. As shown in FIG. 4A, one individual liquidsealing fin 420 or a set of multiple liquid sealing fins 420 are placedacross (i.e., parallel to) the cross-section of the container openingand provide only liquid seal capabilities. A second individual or set ofmultiple fins, in this case frictional hold cork fins 425, are placed atright angles (i.e., perpendicular to) to the cross-section of thecontainer opening and provide frictional hold capabilities.

When used in conjunction with the sliding cork stem described above, thespout 305 will not create a liquid seal when the spout 305 is not fullyplaced on a container 100, as shown in FIG. 4B. This will cause liquidto leak profusely from the container 100. When the spout 305 is fullyplaced on a container 100, as shown in FIG. 4C, the stationary component410 creates a liquid seal with the sealing fin 420, preventing liquidfrom leaking from the container 100. In some embodiments, the container100 is sealed by the sealing fin 420 when the sealing fin 420 is flushwith the opening. In other embodiments, the container 100 is sealed bythe sealing fin 420 when the sealing fin 420 is partially or fullyinserted into the container opening.

C. Combination of Magnetic Sensor and Multiple Fins with DistinctFunctions

In some embodiments, the spout 305 shown in FIGS. 3A-3B also includes anindividual (or set of multiple) liquid sealing fins and an individual(or set of multiple) frictional hold cork fins. As shown in FIGS. 4A-4C,the set of frictional hold cork fins 425 are utilized to provide forceto mechanically slide the sliding component 415 of the sliding corkstem. As shown in FIG. 4C, when the sliding component 415 is forced toits full position of connection, the liquid sealing cork fin or fins 420are positioned to prevent liquid from seeping/spilling from between thecork stem and the container opening. The seal occurs at the samedistance of compression at which the magnet 320 affects the magneticsensor 325.

In some embodiments, the action of the sliding portion 415 of the corkstem is engineered to scrape/remove debris and detritus from thesurfaces of the sliding and stationary parts of the cork stem and,therefore, providing a self cleaning function.

D. Process of Verifying Insertion

FIG. 6 conceptually illustrates a process 600 of some embodiments bywhich a spout with a magnetic sensor that is activated by a sliding corkstem that brings the sensor in range of a magnet determines that it hasbeen inserted into a container and signals that it has been insertedinto a container. The process receives (at 605) a signal from a magneticsensor indicating that the sensor has been triggered. In someembodiments, the sensor is triggered by a sliding cork stem bringing thesensor into range of a magnet as described in relation to FIG. 5. Oncethe sensor has been triggered, the process waits (at 610) for apredetermined period of time. After the predetermined period hasexpired, the process checks (at 615) the sensor again. Next, the processdetermines (at 620) whether the sensor is still being triggered. Someembodiments provide continuous check over the predetermined time.

When the sensor is no longer being triggered the process resets (at 625)the spout (e.g., activates all hardware interrupts) to await the nexttriggering of the sensor and the process ends. Otherwise, when thesensor is still being triggered the process recognizes (at 630) that thesensor is still being triggered. The process then prepares (at 635) acommunication signal for the contact event, e.g., to notify a systemsuch as an inventory management computer that the spout has beeninserted into a container. In some embodiments, the preparedcommunication signal includes a serial number or other identifier of thespout. The process then sends (at 640) the communication signalidentifying the contact event, e.g., to an inventory system.

II. Pressure Activation of a Magnetic Sensor in a Spout

FIG. 7 illustrates a cork 700 that includes a section of pressuredeforming material 710 that is used in some embodiments. As shown, thecork 700 includes fins 720-730 and sections of pressure deformingmaterial 710 bulged inside the cork 700. As shown, compression force isplaced on the exterior of the cork 700, causing the section of pressuredeforming material 710 to bulge inside the cork. In some embodiments,the bulging of the section of pressure deforming material 710 activatesa sensor or switch. In some embodiments, the cork will have fins 720-730of different sizes. These fins 720-730 provide a liquid seal fordifferent size containers. For instance, the cork can be inserted in acontainer with an opening too large for fins 725730, since fin 720 canbe large enough to provide a liquid seal. Similarly, fin 720 may be toolarge to fit into a smaller container opening. In that case, the smallerfins 730 or 725 can provide a liquid seal. In some embodiments, the fin720-730 can be around the entire circumference of the cork 700. In otherembodiments, the fin 720-730 may be attached to the side of the cork700.

FIGS. 8A-8C illustrate a spout 805 that is inserted into a container 100in some embodiments. As shown, the spout 805 includes a set of fins 815including a section of pressure deforming material 830 adjacent to amagnet 820. The spout 805 also includes a fluid flow channel 840 and amagnetic sensor 825 connected to a circuit board 835. In theseembodiments, the action of connecting the spout 805 to the container 100causes the fins 815 to exert pressure and deform the pressure-deformingmaterial 830, pushing the magnet 820 towards the magnetic sensor 825,activating the magnetic sensor 825.

FIG. 8B illustrates the spout 805 when the spout 805 is not placed on acontainer 100 in some embodiments. As shown in FIG. 8B, there is nopressure on the pressure deforming material 830, and therefore themagnet 820 is not close enough to the magnetic sensor 825 to activatethe magnetic sensor 825. When the spout 805 is placed on the container100, as illustrated in FIG. 8C, the pressure deforming material 830pushes the magnet 820 towards the magnetic sensor 825. The new positionof the magnet 820 activates the magnetic sensor 825 on the circuit board835. When the magnetic sensor 825 is activated, the circuit board 835recognizes that the spout 805 has been placed on a container 100.Similarly, the removal of the spout 805 from the container 100 causesthe pressure deforming material 830 to shrink, as shown in FIG. 8B. Whenthe pressure deforming material 830 shrinks, the magnet 820 moves awayfrom the magnetic sensor 825, which deactivates the magnetic sensor 825.The circuit board 835 then recognizes that the spout 805 is no longerplaced on the container 100.

FIG. 9 conceptually illustrates a process 900 of some embodiments bywhich a spout with a magnetic sensor that is activated by pressure onthe spout determines that it has been inserted into a container andsignals that it has been inserted into a container. The process receives(at 905) a signal from a magnetic sensor indicating that the sensor hasbeen triggered. In some embodiments, the sensor is triggered by pressuredeforming material as described in relation to FIGS. 8A-8C. Once thesensor has been triggered, the process waits (at 910) for apredetermined period of time. After the predetermined period hasexpired, the process checks (at 915) the sensor again. Next, the processdetermines (at 920) whether the sensor is still being triggered.

When the sensor is no longer being triggered, the process resets (at925) the spout (e.g., activates all hardware interrupts) to await thenext triggering of the sensor and the process ends. Otherwise, when thesensor is still being triggered, the process recognizes (at 930) thatthe sensor is still being triggered. The process then prepares (at 935)a communication signal for the contact event, e.g., to notify a systemsuch as an inventory management computer that the spout has beeninserted into a container. In some embodiments, the preparedcommunication signal includes a serial number or other identifier of thespout. The process then sends (at 940) the communication signalidentifying the contact event, e.g., to an inventory system.

FIG. 10 illustrates a top down sectional view of a spout 805 thatdetects when it is inserted into a container in some embodiments. Asshown, the spout 805 includes a flexible cork 1050 and a dispensingchannel 1040. The spout 805 also includes, enclosed in a hard casing1070, a magnet 1020 adjacent to, or within, pressure deforming material1060 bulged through a hole in the hard casing 1070 and a magnetic sensor1025 attached to a circuit board 1035. When spout 805 is inserted intocontainer, pressure is placed on the flexible cork 1050. The pressure onthe flexible cork 1050 causes the section of pressure deforming material1060 to which the magnet 1020 is adjacent, or within, to push throughthe hole in the hard casing 1070, pushing the magnet 1020 within rangeof the magnetic sensor 1025, and activating the magnetic sensor 1025.Similarly, the removal of spout 805 from container removes the pressurefrom the flexible cork 1050 causing the section of pressure deformingmaterial 1060 to shrink back through the hole in the hard casing 1070.When the section of pressure deforming material 1060 shrinks back, themagnet 1020 is no longer in range of the magnetic sensor 1025, and themagnetic sensor 1025 is no longer activated. In some embodiments, thestate of the magnetic sensor 1025 (inserted or non-inserted) is capturedthrough the circuit board 1035 and used to activate various functionswithin the firmware within the circuit board 1035.

III. Pressure Activation of a Contact Switch in a Spout

FIGS. 11A-11C illustrate a spout 1105 that is inserted into a container100 in some embodiments. As shown, the spout 1105 includes a set of fins1115, a contact switch 1125, a circuit board 1135, a fluid flow channel1140, and a section of pressure deforming material 1130. As shown, thecontact switch 1125 is connected to a circuit board 1135 and the sectionof pressure deforming material 1130 is adjacent to the contact switch1125. In these embodiments, the action of connecting the spout 1105 tothe container 100 causes the fins 1115 to exert pressure and deform thepressure-deforming material 1130, pushing the contact switch 1125. Insome embodiments, the contact switch 1125, and the magnetic sensors thatdetect when a spout has been inserted into a container, as described inprevious sections, are generically referred to as “insertion detectors”.

FIG. 11B illustrates section 1110 of the spout 1105 when the spout isnot inserted in a container 100. In this configuration, there is nopressure on the pressure deforming material 1130. Therefore, thepressure deforming material 1130 does not push on the contact switch1125, which therefore is not activated. The circuit board 1135,therefore, recognizes that the spout 1105 is not on the container 100.FIG. 11C illustrates the section 1110 of the spout 1105 when the spoutis placed on a container 100. As shown in FIG. 11C, pressure from thefins 1115 deforms the pressure deforming material 1130. The pressuredeforming material 1130 pushes on the contact switch 1125, activatingthe contact switch 1125. Therefore, the circuit board 1135 recognizesthat the spout 1105 is on the container 100. Similarly, the removal ofthe spout 1105 from the container 100 causes the pressure deformingmaterial 1130 to shrink back, as shown in FIG. 11B. When this occurs,the contact switch 1125 is no longer activated, and the circuit board1135 recognizes that the spout 1105 is no longer on the container 100.

FIG. 12 conceptually illustrates a process of some embodiments by whicha spout with a physical contact switch determines that it has beeninserted into a container and signals that it has been inserted into acontainer. The process receives (at 1205) a signal from a physicalcontact switch indicating that the switch has been engaged. In someembodiments, the switch is engaged by pressure deforming material asdescribed in relation to FIGS. 11A-11C. Once the switch has beenactivated, the process waits (at 1210) for a predetermined period oftime. After the predetermined period has expired, the process checks (at1215) the physical contact switch again. Next, the process determines(1220) whether the physical contact switch is still engaged.

When the switch is no longer engaged the process resets (at 1225) thespout (e.g., activates all hardware interrupts) to await the nextactivation of the switch and the process ends. Otherwise, when theswitch is still engaged the process recognizes (at 1230) that the switchis still active. The process then prepares (at 1235) a communicationsignal for the contact event, e.g., to notify a system such as aninventory management computer that the spout has been inserted into acontainer. In some embodiments, the prepared communication signalincludes a serial number or other identifier of the spout. The processthen sends (at 1240) the communication signal identifying the contactevent, e.g., to an inventory system.

FIG. 13 illustrates a top down, sectional view of a spout 1105 insertedinto a container in some embodiments. As shown, the spout 1105 includesa flexible cork 1350 and a dispensing channel 1340. The spout 1105 alsoincludes, enclosed in a hard casing 1370, a section of cork material1360 bulging through the hard casing 1370 and a contact switch 1325attached to a circuit board 1335. When spout 1105 is inserted intocontainer, pressure is placed on the flexible cork 1350. The pressure onthe flexible cork 1350 causes the section of pressure deforming material1360 to push through the hole in the hard casing 1370, and press thecontact switch 1325. Similarly, the removal of spout 1105 from container100 removes the pressure from the flexible cork 1350 causing the sectionof pressure deforming material 1360 to shrink back through the hole inthe hard casing 1370. When the section of pressure deforming material1360 shrinks back, it no longer presses the contact switch 1325. Thestate of the contact switch 1325 (indicating that the spout is insertedor non-inserted) is captured through the circuit board 1335 and used toactivate various functions within the firmware of the circuit board1335.

IV. Accelerometer Based Pouring Sensor

FIGS. 14A-14B and FIG. 15 illustrate an accelerometer 1420 connected toa circuit board 1435 in some embodiments. In some embodiments, theaccelerometer is a micro-electromechanical system (MEMS). As shown, thespout 1405 includes a fluid flow channel 1440 and an accelerometer 1420connected to a circuit board 1435. The accelerometer 1420 can be used todetect angles of inclination, time of inclination, and speed anddirection of containers 100 and 1500 used to dispense liquids, gels,powders, and/or solid materials. As shown in FIGS. 14A-14B theaccelerometer 1420 connected to a circuit board 1435 is installed inspout 1405 through which the material is poured from the container 100.FIG. 14A illustrates a circuit board 1435 and accelerometer 1420 thatare aligned perpendicular to the fluid flow channel 1440 through whichmaterials are poured from the container 100. FIG. 14B illustrates acircuit board 1435 and accelerometer 1420 that are aligned parallel tothe fluid flow channel 1440 through which materials are poured from thecontainer 100.

FIG. 15 illustrates an accelerometer 1420 that is not part of a spoutthrough which material flows from a container, but is instead attachedto a container 1500 in some embodiments. The accelerometer 1420 can beattached to the inside of the container 1500, as shown in 1510, orattached to the outside of the container, as shown in 1515. Theaccelerometer 1420 and circuit board 1435 may be enclosed in casing 1525in some embodiments.

FIG. 16 illustrates electronic components of some embodiments. As shown,the circuit board 1605 includes a chronometer 1610, a transceiver 1615,an antenna 1620, a battery 1625, a contact switch 1630, a thermometer1635, a reprogramming sensor 1640, a tilt switch 1645, an accelerometer1650, and a processor 1655. The circuit board 1605 can be a rigid orflexible board, and includes electronic components and electronictraces. The chronometer 1610 includes date and time information used tocoordinate functions of the electronic components and the processor. Thetransceiver 1615 is modulated to a single or range of frequencies totransmit and/or receive data with coordinating devices. The antenna 1620is set to an optimal length depending on the specific frequency (orfrequencies) used and in some embodiments is etched on the circuitboard. The battery 1625 can be either a primary or backup power sourceand can either be disposable or rechargeable.

The contact switch 1630 can be either physical or magnetic in activationproperties and is used as a method to sense the attachment or detachmentof the device from a container. The contact switch 1630 is also used asa power saving method as it is, in effect, an on/off switch for thedevice in some embodiments. The thermometer 1635 measures thetemperature of material dispensed from the container for calculating anaccurate flow rate. The reprogramming sensor 1640 receives data from anoutside transmission source to reprogram the functions conducted by thevarious components on the circuit board 1605. The tilt switch 1645 is acontact switch using a metal ball and contacts or mercury and contactsthat is oriented to a specific plane to the earth's horizon. When thetilt switch 1645 is moved beyond its plane of horizon, the metal ball ormercury touches a contact which sets the switch to active. The tiltswitch 1645 can be used to activate sensor input, as a secondary on/offswitch for the entire device, or both. The accelerometer 1650 measuresspeed, direction and angle of the unit in relation to a fixed point ineither 2 dimensions (i.e. movement across a table) or 3 dimensions (i.e.movement up, down, left, right, forward, backwards). The processor 1655of some embodiments includes the onboard memory, firmware program andlogic functions. The processor 1655 can be either single cycle (i.e. oneprocessing speed) or multi-cycle (i.e. multiple processing speeds). Theslower the processor speed, the more time it takes to calculate/functionbut the less energy is used. A multi speed processor is used to optimizethe performance of the calculations and the power utilization, which isparticularly important when the device is used with a battery.

A. Measuring of Angles

FIG. 17 illustrates an example of using the accelerometer 1420 withcircuit board 1435 to record multiple angles of inclination of acontainer in some embodiments. As shown, the accelerometer 1420 andcircuit board 1435 are enclosed in casing 1525. In FIG. 17, theaccelerometer 1420 and circuit board 1435 are attached to the containeror a spout (not shown) such that they are vertically aligned with thecontainer when the container is upright in some embodiments. In someembodiments, the accelerometer 1420 and circuit board 1435 are attachedsuch that they are horizontally aligned with the container when thecontainer is upright. FIG. 17, in portion 1705, shows the accelerometer1420 and circuit board 1435 measuring the angle at 0 degrees at timepoint 1. FIG. 17, in portion 1710, shows the accelerometer 1420 andcircuit beard 1435 measuring the angle at 90 degrees at time point 2.FIG. 17, in portion 1715, shows the accelerometer 1420 and circuit board1435 measuring the angle at 120 degrees at time point 3. Theaccelerometer 1420 and circuit board 1435 measure the angle of thecontainer to which they are attached over the finite period of time fromtime point 1 to time point 2 to time point 3.

B. Measuring Speeds and Directions

FIG. 18 illustrates an accelerometer 1420 with circuit board 1435 thatrecords multiple speeds and directions of a container through a seriesof motions or movements through a finite period of time in someembodiments. As shown, the accelerometer 1420 and circuit board 1435 areenclosed in casing 1525. FIG. 18, in portion 1805, shows theaccelerometer 1420 and circuit board 1435 located at position A at timepoint 1. FIG. 18, in portion 1810, shows the accelerometer 1420 andcircuit board 1435 located at position B at time point 2. FIG. 18, inportion 1815, shows the accelerometer 1420 and circuit board 1435located at position C at time point 3. The accelerometer 1420 andcircuit board 1435 measure the speed and direction of the container (notshown) to which they are attached as it moves from position A toposition B to position C over the finite period of time from time point1 to time point 2 to time point 3.

A practical application of measuring speed and direction is the abilityto detect if dispensing occurs at one location or occurs at multiplelocations. For instance, a bartender at a bar may dispense six ounces offluid. If the dispensing occurs without a change in direction or speed,it can be deduced that only one container (e.g., a glass) was filledwith fluid. However, if a bartender at a bar dispenses six ounces offluid and speed and motion are detected simultaneously with thedispensing of the fluid, then it can be deduced that the fluid wasdispensed over multiple containers (e.g., multiple glasses).

An accelerometer or multiple accelerometers used in tandem can deducespeed and direction not just in 2 dimensions, but in 3 dimensions.Therefore, speed and direction can be determined for the directions up,down, left, right, forwards and backwards. Given a known starting pointand the time of the motion while detecting speed and direction of motionin three dimensions, the ending point of the motion can be determined.For instance, if a bartender takes a bottle from a holder at the frontof a bar and that bottle is known to start from the well and the bottleis carried behind the bartender to a shelf, then the bottle will beknown to be placed on the shelf as the ending point because the speed,direction and time of travel is known.

C. Measuring Time of Inclination, Speed and Direction

FIG. 19 illustrates an accelerometer 1420 with a circuit board 1435 thatrecords one or more time intervals in which it detects angles,directions, and speeds in some embodiments. As shown, the accelerometer1420 and circuit board 1435 are enclosed in casing 1525. FIG. 19 inportion 1905, shows the accelerometer 1420 and circuit board 1435located at position A and inclined at angle A at time point 1. FIG. 19,in portion 1910, shows the accelerometer 1420 and circuit board 1435located at position B and inclined at angle B at time point 2. FIG. 19,in portion 1915, shows the accelerometer 1420 and circuit board 1435located at position C and inclined at angle C at time point 3. Theaccelerometer 1420 and circuit board 1435 record the time intervals fromtime point 1 to time point 2 to time point 3, as well as the angle ofthe container (not shown) and speed and direction of the movement fromposition A to position B to position C over the same time intervals.

D. Power Saving Methods

In some embodiments, a method is employed to reduce power consumption bythe accelerometer. In some embodiments, the software on a circuit board1435 with an accelerometer 1420 is programmed to reduce the number ofcycles or intervals of time in which measurements or readings are takenfrom the accelerometer 1420 while the accelerometer 1420 is not inmotion. When motion is detected, the software on the circuit board 1435increases the number of cycles or intervals of time in whichmeasurements or readings are taken from the accelerometer 1420, untilthe accelerometer 1420 is no longer in motion.

FIG. 20 illustrates a method to reduce power consumption by anaccelerometer 1420 in some embodiments. As shown, the accelerometer 1420and a tilt switch 2015 are attached to a circuit board 1435, andenclosed in casing 1525. In these embodiments, the software controllingthe circuit board 1435 is programmed such that the tilt switch 2015being within a range of angles around a base angle fully deactivates theaccelerometer or reduces the frequency with which measurements orreadings are taken from the accelerometer 1420. The software controllingthe circuit board 1435 is programmed in such a way that the tilt switch2015 being within a different range of angles fully activates theaccelerometer or increases the frequency with which measurements orreadings are taken from the accelerometer 1420. In some embodiments, therange of angles in which the tilt switch 2015 activates or increases thefrequency with which measurements or readings are taken from theaccelerometer 1420 is all angles except for the range of angles aroundthe base angle at which the tilt switch 2015 fully deactivates theaccelerometer or reduces the frequency with which measurements orreadings are taken from the accelerometer 1420. In portion 2005, FIG. 20shows the tilt switch 2015 at a base angle of 0 degrees, and thereforethe power to the accelerometer 1420 is off and no measurements aretaken. In portion 2010, FIG. 20 shows the tilt switch 2015 at an anglesufficiently far from the base angle that the power is supplied to theaccelerometer 1420 and measurements from the accelerometer 1420 aretaken.

In some embodiments, frictional vibrations, detected when material isbeing dispensed from the container, are used to activate the device. Thedispensing of liquids, gels, powders, or solids from a container createsfrictional vibrations within the container. Some embodiments with anaccelerometer measure the angles, times, speeds and directions of acontainer dispensing liquids, gels, powders, or solids, and also detectsfrictional vibrations with the accelerometer. In some embodiments, whenan accelerometer 1420 detects these frictional vibrations, softwarewithin the circuit board 1435 determines and indicates that thevibrations are caused by the liquids, gels, powders, or solids beingdispensed. When these vibrations are not sensed by the accelerometer1420, software within the circuit board 1435 determines and indicatesthat vibrations from liquids, gels, powders, or solids being dispensedare not present.

FIG. 21 conceptually illustrates a process 2100 of some embodiments forsaving power of a spout. In some embodiments, the process 2100 isperformed by a microcontroller of a spout which controls anaccelerometer of the spout. The process activates (at 2105) anaccelerometer at preset intervals (e.g. 0.5 seconds, though otherintervals are used in other embodiments) to check for motion, e.g.,vibration or tilting. By activating the accelerometer at relativelyinfrequent intervals, rather than keeping the accelerometer constantlyactive, the process saves energy that would be consumed by more frequentchecks for motion.

Next, the process determines (at 2110) whether a signal for theaccelerometer indicates motion. When the process does not receive asignal from the accelerometer that indicates motion, the process returnsto operation 2105 and keeps testing at the predetermined time intervals.Otherwise, when the process does receive a signal from the accelerometerthat indicates motion, the process checks the accelerometer angle todetermine whether the angle exceeds a threshold that indicates thatmaterial is being poured. Next, the process determines whether the angledoes exceed the threshold. When the angle exceeds the threshold, theprocess proceeds to operation 2105 which was described above. Otherwise,when the angle does exceed the threshold, the process fully activates(at 2125) the accelerometer and monitors and records the angles of thespout at more frequent intervals (e.g., 0.125 seconds, though otherintervals are used by other embodiments).

Next, the process determines (at 2130) whether the material is stillbeing poured. When the material is still being poured, the processreturns to operation 2125 and continues to closely monitor the angle ofthe spout. Otherwise, when the process determines (at 2130) that thepouring has stopped (e.g., the angle of the spout drops below somethreshold angle that in some embodiments is different from the thresholdangle of operation 2120) then the process ends. One of ordinary skill inthe art will understand that in some embodiments, when the process ends,the process then resumes monitoring for motion (e.g., returns tooperation 2105).

E. Temperature Sensing Component

In some embodiments, a circuit board includes a temperature sensingcomponent that is placed in close proximity to or in direct contact withthe liquid, gel, powder, or solid flow channel. Placing the temperaturesensing component in close proximity to or in direct contact with flowchannel allows the temperature of the material dispensed to be recordedduring dispensing. This information, once recorded, is stored and/ortransmitted. The temperature is used to more accurately calculate theamount of liquid, gel, powder, or solid dispensed by providing a moreaccurate flow rate. In these embodiments, software calculates the volumeof liquids, gels, powders or solids dispensed as proportional to thelength of time the material was dispensed, the angles at which thematerial was dispensed, and the flow rates. The flow rates are based onthe dispensing angles and recorded temperature for the dispensedmaterial.

FIG. 22 conceptually illustrates a process 2200 of some embodiments bywhich a spout measures the temperature of material being dispensed froma container along with the pour data to increase the accuracy of thepour data. In some embodiments, the process is performed by a spout. Theprocess generates (at 2205) pour data regarding the dispensing ofmaterial from a container as discussed above. The process measures (at2210) the temperature of the material being dispensed from thecontainer. The process then transmits (at 2215) the pour data and themeasured temperature to a computer in some embodiments. In otherembodiments, the process transmits the data to an external system. Theprocess then ends.

F. Measuring the Volume of Liquids, Gels, Powders, or Solids Dispensed

In some embodiments, the accelerometer and other parts of the spoutmeasure the angles, times, speeds and directions of a container thatdispenses liquids, gels, powders, or solids for which the flow rate ofthe dispensed material at a given angle is known. In these embodiments,software calculates the volume of liquid, gels, powders, or solidsdispensed as a function of the length of time the material wasdispensed, the angles at which the material was dispensed, and the flowrates at those angles for the dispensed material.

In the measuring of the dispensing of liquids, gels, powders, or solids,the material to be dispensed will be known, whether the materials areliquids like pure water, vodka, or a sulfuric acid solution, a siliconbased gel, or talcum powder, etc. The specific dispensing rate for abaseline material, such as pure water, for any specific container thatis monitored will also be known. In some embodiments, the dispensingrate is determined by a removable and specifically designed mechanicaldispenser with a fixed and known diameter for pouring and specific pourcharacteristics. In other embodiments, the specific dispensing rate isdetermined by direct measurements of the opening of a container with aspout and/or by trial dispensing with a baseline material, such as purewater, in order to determine the dispensing rate. When the dispensingrate is determined through trial dispensing of a baseline material, thetrials and measurements are performed at multiple angles, since theangle of dispensing affects flow rates.

FIG. 23A shows a series of dispensed volumes for the baseline materialare recorded over a known sequence of time for a fixed angle. FIG. 23Bshows a composite of the various angles are combined to create thedispensing rate slope. FIG. 23C shows slopes created for variousmaterials compared to the baseline material based on the materialviscosity for fluids and gels or the density for powders and solids. Insome embodiments, the baseline material may be more viscous and/ordenser than some or all of the materials dispensed. In some embodiments,the baseline material may be less viscous and/or less dense than some orall of the materials dispensed.

The following are mathematical formulas for determining the volume ofmaterial dispensed using this principle. Determining the volume over atime sequence at a fixed angle is expressed by the following equation(A).V ₁ =DR ₁ *t ₁[Angle₁]  (A)Where, V₁ is the volume dispensed for a given amount of time (t₁) andDR₁ equals the dispensing rate (volume/time), for a particular angle(Angle₁).

Determining the volume over a time sequence at a various angles isexpressed by the following equation (B).V=ΣV _(x)=Σ(DR _(x) *t _(x)[Angle_(x)])  (B)Where, V_(x) is the volume dispensed for a given amount of time (t_(x))with a varying number of angles (Angle_(x)) and the correspondingdispensing rate (DR_(x)) for each given angle in the series.

Determining the volume over a sequence of time using angular average isexpressed by the following equation (C).V=DR ₁ *t ₁[Average of Angle_(x)]  (C)Where, V is the volume dispensed for a given amount of time (t₁) bymultiplying time by the dispensing rate (DR₁) for the average of the sumof angles for an angular series recorded over that time period (Averageof Angle_(x)).

G. Offset Compensator to Adjust for Dispensing Momentum from aNon-Dispensing State to a Dispensing State

When a container begins to pour out a material, the material rushes fromthe base of the container to the mouth of the container. That is, when acontainer with liquid, gels, powders, or solids, first achieves enoughinversion of angle to use gravity to dispense material the materialusually has the additional acceleration from its fall from the base ofthe container. The acceleration of material can cause a degree ofinaccuracy in predicting the amount of material dispensed as per thecalculations described above. In some circumstances, the calculatedvolume dispensed is multiplied by an offset number, greater than one ifincreasing the volume, less than one if decreasing the volume, or one toleave the volume the same, to compensate for the acceleration ofmaterial in the initial physical action of dispensing material. Ineffect, this changes the intercept of the pouring slope. This isaccomplished through a simple formula: Volume×Offset.

H. Time, Angle and Volume Measurement Process

FIG. 24 conceptually illustrates a process 2400 of some embodiments formeasuring a volume of material dispensed by tracking the angle of thecontainer during the dispensing. The process determines (at 2405)whether a spout has been inserted into a container. When the spout hasnot been inserted into a container, the process ends. Otherwise, whenthe spout has been inserted into the container, the process measures (at2410) the angle of the spout (or in some embodiments, the angle of thecontainer). Next the process determines (at 2415) whether the currentangle does not exceed a first threshold angle (e.g., an angle at whichthe material in the container begins to pour). When the current angledoes not exceed the first threshold, the process returns to operation2410. Otherwise, the process tracks (at 2425) the angle of the spout fora predetermined time interval. After that time interval, when theprocess determines (at 2425) that the current angle of the spout isgreater than a second threshold angle (e.g., determines that thematerial is still being poured) then the process returns to operation2420. Otherwise, when the process determines that the current angle ofthe spout is less than a second threshold angle (e.g., determines thatthe material is no longer being poured), then the process uses (at 2430)the tracked angles over the time intervals to determine the volumepoured and the process ends. A more detailed description of the processthat some embodiments use to determine pour volume is illustrated inFIG. 25.

FIGS. 25A-25B conceptually illustrate a process of some embodiments formeasuring pour volumes. Specifically, FIGS. 25A-25B show atime-angle-volume measurement process used by the spout of someembodiments to measure the duration of periods when material is beingdispensed, the angle of inclination during these periods, and thecalculation of volume dispensed from a monitored container in someembodiments.

The process 2500 is triggered by the activation of an insertion detector(e.g., a hardware power connection switch) on the spout. In someembodiments, the insertion detector may be a magnetic sensor or physicalcontact switch as described above. In some embodiments, measurements andother actions in the process are controlled by an internal processor ofthe spout. In other embodiments, an external processor may control theprocess. Operations 2502-2508 collectively determine whether the spouthas been put on a container. The process receives an insertion detectorsignal (at 2502), e.g., a hardware interrupt that indicates that thespout has been placed in a container for pouring. The process checks (at2504) the status of the detector. The process determines (at 2506)whether the detector continues to indicate that the spout is on thecontainer (e.g., whether the detector was incidentally activated, suchas by some accidental contact or whether the spout has been put on acontainer). When the detector does not continue to indicate that thespout is on the container, the process recognizes (at 2508) that thespout has not been inserted into a container and ends.

Otherwise, when the detector does continue to indicate that the spout ison the container, then the process 2500 measures (at 2510) a baselineangle of an angle monitor (e.g., an accelerometer used to measure theangle of inclination of the spout) in the spout. In some embodiments,the baseline is the angle of the angle monitor when the container isupright. The process waits (at 2512) for a predetermined period of time(e.g., 0.125 seconds, though other embodiments use other timeintervals), and measures (at 2513) the current angle of the anglemonitor. The process determines (at 2514) the difference between thebaseline angle and the current angle. Next the process compares (at2516) the angular difference to a threshold value. When the angulardifference does not exceed the threshold value, the process returns tooperation 2512, which was described above.

Otherwise, when the angular difference exceeds the threshold value, thecontainer is (at 2518) in a pouring state. Operations 2518-2574 areillustrated in FIG. 25B. The process sets (at 2518) a variable p_stateto 1. The process also sets (at 2518) each of the following variables tozero: 1) a pouring variable P1, 2) a non-pouring variable NP1, 3) afirst-time-period variable t1, and 4) all values of a multi-value anglevariable A1 (e.g., an indexed variable, list, or other data structure)representing the angle of the pour at multiple times.

Operations 2518-2532, 2540, and 2542 collectively determine whether thecontainer was only at a pouring angle for a brief moment, or is actuallypouring, e.g., whether the bottle was merely jostled or is being held ina pouring position. The process waits (at 2520) for a predeterminedamount of time, in some embodiments 0.125 seconds. In other embodimentsthe process waits for different amounts of time. After waiting, theprocess increments (at 2522) the index of the angle variable A1 by 1,stores the current angular measurement at the new index location ofangle variable A1, and increments (at 2524) the time variable by 1. Theprocess then takes (at 2526) a new angular measurement.

The process determines (at 2528) whether the container is still pouring,e.g., whether the angular difference between the new angular measurementand the baseline measurement is less than the threshold angle. When theangular difference is less than the threshold value, the processincrements (at 2530) the non-pour value NP1 by 1 and sets the pourvariable P1 to 0. These settings for the variables indicate that, as ofthe new angular measurement, the container was not pouring. The processthen determines (at 2532) whether the non-pour variable NP1 equals apreset number (for convenience, the number 3 is used as an example hereand in FIG. 25B, however other embodiments use other numbers),indicating that for all three of the previous three predetermined timeperiods the container has not been at an angle which would result inpouring. When the container has been non-pouring for less than three ofthe predetermined time periods, the process'returns to 2520 to repeatthe operations that check whether the container is pouring.

When the process determines (at 2532) that the container has beennon-pouring for the previous three predetermined time periods, then thedetection (back at 2516) of an angular difference exceeding thethreshold angle is treated as a false pour detection signal. In someembodiments, three predetermined periods of time are a short enough timeto allow only a negligible amount of material to be dispensed from thecontainer. Otherwise, when the process detects (at 2532) a false pour,the process clears (at 2534) the pour interrupt flag and enables all theinterrupts. The process then ends. One of ordinary skill in the art willunderstand that in some embodiments, when the process ends, the processthen restarts from the beginning (at 2505) and again determines whetherthe spout is on a container.

When the process determines (at 2528) that material is still beingdispensed it increments (at 2540) the pour variable P1 by 1 and sets thenon-pour variable NP1 to 0. These settings for the variables indicatethat, as of the new angular measurement, the container was pouring. Theprocess then determines (at 2542) whether the pour variable P1 equals apreset number (for convenience, the number 3 is used as an example hereand in FIG. 25B, however other embodiments use other numbers),indicating that for all three of the previous three predetermined timeperiods the container has been at an angle which would result inpouring. When the process determines (at 2542) that the container hasbeen pouring for less than three of the predetermined time periods, theprocess returns to step 2520 to repeat the operations that check whetherthe container is pouring.

Otherwise, when the process determines (at 2542) that the container hasbeen pouring for the previous three predetermined time periods, then thedetection (back at 2516) of an angular difference exceeding thethreshold angle is treated as a true pour detection signal. The validityof the pour detection signal is confirmed, and the container isconfirmed as dispensing material because the angular difference betweenthe baseline angle and the current angle remained beyond the thresholdfor longer than three of the predetermined time periods. The time periodt1 measured until now represents the duration of the pour and allangular measurements A1 represent the angles during the time durationperiod t1.

The process sets (at 2544) a variable p_state to 2. The process alsosets (at 2544) each of the following variables to zero: 1) a non-pouringvariable NP1, 2) a second-time-period variable t2, and 3) all values ofa multi-value angle variable A2 (e.g., an indexed variable, list, orother data structure) representing the angle of the pour at multipletimes. The process then waits (at 2546) for a predetermined timeinterval then takes (at 2548) an angular measurement and increments (at2550) t2 by 1, increments (at 2552) the index of angle variable A2 by 1and stores the angular measurement in the new index location of anglevariable A2. The process compares (at 2554) the total time of the pourto a maximum time value. When the process determines (at 2554) that themaximum value is exceeded, the process determines that the dispensingexceeded a reasonable period of time and the value for the amount pouredshould be discarded. The process transmits (at 2556) a maximum valueflag through a transceiver, clears (at 2558) all interrupts, and ends.One of ordinary skill in the art will understand that in someembodiments, when the process ends, the process then restarts from thebeginning (at 2505) and again determines whether the spout is on acontainer.

Otherwise, when the process determines (at 2554) that the total time ofthe pour does not exceed its maximum value, it determines (at 2560)whether it is still pouring/dispensing material. When the container isdetermined (at 2560) to be still pouring, then the process sets (at2562) the non-pour variable NP2 to 0, and then returns to operation2546, which was described above. Otherwise, when the container isdetermined (at 2560) not to be pouring, then the process increments (at2564) the non-pour variable NP2 by 1. The process then determines (at2566) whether the non-pour variable equals a preset number (forconvenience, the number 3 is used as an example here and in FIG. 25B,however other embodiments use other numbers) and thus whether thepouring has been stopped for three consecutive predetermined timeperiods. When the process determines (at 2566) that the non-pourvariable does not equal the preset number, the process returns tooperation 2546, which was described above.

Operations 2568-2574 collectively calculate the volume of the pour. Whenthe process determines (at 2566) that the pouring is complete, theprocess adds (at 2568) the first and second time periods t1 and t2. Theprocess also averages (at 2570) the first and second sets of anglevalues A1 and A2. The process then calculates (at 2572) the pour volumebased on the time interval, average of the angles of pour and thebaseline dispensing rates for the substance being poured from thecontainer and any necessary offset numbers (to account for otherfactors, e.g., temperature, viscosity, etc). In the embodimentillustrated in FIG. 25A-25B, the pour volume is calculated based on theaverage of the angles during the pouring time. However, in someembodiments, the pour volume is calculated by applying a pour ratealgorithm, which relates the angle of the spout to the rate at which thematerial pours, to each angle value of A1 and A2 individually and addingthe amounts determined by the algorithm for each angle, rather thanaveraging the angles first and applying a formula that uses the averageangle.

The process then sends (at 2574) the pour information via a signal fromthe transceiver. In some embodiments, this pour signal includes thevolume value, transmission sequence number, unique device identifyingnumber (serial number) and any additional relevant sensor data includingtime, date, temperature, and humidity. After transmission, the processclears all interrupts and then enables them again (at 2558). The processthen ends. One of ordinary skill in the art will understand that in someembodiments, when the process ends, the process then restarts from thebeginning (at 2505) and again determines whether the spout is on acontainer.

I. Software Based Adjustments to Volume Transmissions Based on SensorData

FIG. 1 illustrates a spout working as part of a system in whichcomputing devices 130, 135, and 140 receive the device data throughvarious networking and communications topologies in some embodiments.The computing devices have software which allows the data from thepouring devices to be stored, processed and manipulated. The applicationuses lookup tables and algorithms to take the data based on a baselinematerial and apply viscosity and density modifiers to derive new volumesvalues that reflect the actual material dispensed.

FIG. 26 conceptually illustrates a process of some embodiments by whicha computer application is configured and processes data from a spout.The process receives (at 2610) the spout's unique serial number into acomputer application either through manual or automatic number entry.The process receives (at 2612) a selection of a material, from a list ofmaterials provided by the application and associates that material withthe serial number. In some embodiments, materials on the list are eachassociated with viscosity and density modifiers. In some embodiments,the viscosity and density modifiers are correlated with secondaryinformation such as temperature ranges, humidity ranges, pressureranges, solution concentration ranges, etc. In some such embodiments,the process retrieves (at 2614) the modifiers for the selected material.

The process receives (at 2616) data (e.g., the serial number) at theapplication from the spout (e.g., from a transceiver of the spout to oneor many computers running the application). The process examines (at2618) the incoming data for redundancies. In some embodiments theexamination is by the application while it runs on one or morecomputers. When a redundancy is detected (at 2620), such as when thesame spout sends the same data multiple times, the redundant data isdiscarded (at 2622) and the process ends. Otherwise, when a redundancyis not detected (at 2620), the process checks (at 2623) the data forerrors. When an error is detected (at 2624) then the data is written (at2626) to an error file and the process ends. Otherwise, when an error isnot detected (at 2624) then the application checks (at 2628) the serialnumber in the data and looks up the material assigned to the serialnumber based on the data/time stamp of the data.

When the process determines (at 2630) that no assignment has been madeor that the assignment is the same material as the baseline material,the original volume is written (at 2632) to the database, a databaseflag is set (also at 2632) to indicate that no data modification tookplace and the process ends. Otherwise, when the process determines (at2630) that an assignment has been made (of a material to the serialnumber), the process selects (at 2634) a material modifier based on theassociated data from the device such as temperature, humidity, etc. andapplies (also at 2634) the modifier to the baseline material volumedata. The new volume data is written (at 2636) to the database and theprocess ends.

V. Reprogramming a Spout Through an Infrared or Magnetic Sensor

A fully assembled and functioning spout can have a change made to itsfirmware programming, dispensing rate calculation methods and factorswithout having to physically open the spout.

FIG. 27 illustrates a sensor 2715 attached to a circuit board 2735located on a spout in some embodiments. Examples of sensor 2715 aremagnetic sensors and infrared sensors. Various components on the circuitboard 2735, such as an accelerometer 2720, are controlled by softwarethat operates on the circuit board. In some embodiments, the software ischanged or reprogrammed through the sensor 2715. In some embodiments,the circuit board 2735 that includes the sensor 2715 is constantlyactive. In some embodiments, the circuit board 2735 is activated by asensor 2715, is periodically activated, or is activated by atransmission that includes a coded signal. In some embodiments, a sensorthat measures vibrations or acceleration on the circuit board 2735, suchas the accelerometer 2720, recognizes a specific pattern of vibrationsin order to activate the sensor 2715.

An outside transmission source 2730 is used to transmit modulatedpatterns which activate and can change the firmware/software on thecircuit board 2735. In some embodiments, the outside transmission sourcetransmits using infrared or magnetic signals. Data from the outsidecommunication device 2730 is transmitted to the activated sensor 2715 onthe circuit board 2735.

FIG. 30 conceptually illustrates a logical process 3000 by which a spoutreceives new programming in some embodiments. The process (at 3005)detects certain physical manipulations of the spout, such as the spoutbeing shaken or the spout's pressure contact switch being pressed inrapid succession. In some embodiments, the spout must continue to bemanipulated for some period of time until the action is recognized by afirmware bootloader as a request by the spout to update the spout'sfirmware. In other embodiments, where the spout has bidirectionalcommunication capabilities, a firmware update can be initiated through atransmission by a communication device or transceiver of a firmwarechange request.

The process determines (at 3010) whether the spout has sent a rebootcommand. When the spout's reboot command is not recognized (at 3010)then the process ends. When the spout's reboot command is recognized (at3010) then the process activates (at 3015) a countdown timer of thespout and stops all other activities of the spout, such as dispensingmaterials, etc. These activities remain stopped while the processlistens (at 3020) for reboot instructions to be received at the spoutfor the duration of the countdown. In some embodiments, the rebootinstructions are received from the central computer system. In otherembodiments, the reboot instructions are received from a handhelddevice, or from some other computer system.

When reboot instruction are not received (at 3025) by the spout duringthe countdown, the process sends (at 3030) a communication of a rebootfailure from the spout and the spout goes back to its previous state ofactivation, and the process ends. When reboot instructions are received(at 3025) by the spout during the countdown, the process checks (at3035) the countdown timer. When the countdown timer has expired beforethe spout receives the reboot instructions, the process sends (at 3030),from the spout, a communication of a reboot failure, the spout goes backto its previous state of activation, and the process ends. When thecountdown timer has not expired (at 3035) before the spout receives thereboot instructions, the process sends (at 3040) a communication fromthe spout that the reboot instructions have been received. The processexecutes (at 3045), at the spout's processor, the firmware updateinstructions. If the instructions are not successfully executed (at3050), the process sends (at 3030), from the spout, a communication of areboot failure and the process ends. When the instructions aresuccessfully executed (at 3050), the process sends (at 3055) acommunication from the spout that the update was successful and theprocess ends.

VI. Sonar Method to Measure the Dispensing of Materials from Containers

FIG. 28 illustrates a device 2805 that can be attached to the inside ofa container (not shown) containing liquids, gels, powders, or solids insome embodiments. As shown, the device 2805 includes an audio amplifier2813 and a microphone 2810 connected to a circuit board 2835. FIG. 29illustrates the device 2805 attached to the inside of a container 2900containing liquids, gels, powders, or solids in various embodiments. Asound pulse at a set frequency is transmitted by the audio amplifier2813 into the container of liquids, gels, powders, or solids. In someembodiments, the frequency is inaudible to human ears. In otherembodiments, the volume is undetectable by human ears.

In some embodiments, the fact that a pour has occurred is determined bythe device 2805. When liquids, gels, powders, or solids are pouredthrough a flow channel in the container 2900, the sound pulse isdistorted by the motions and a sensor, such as the microphone 2810,notes the changes in its measurements. In other embodiments, the factthat a pour has occurred is determined by a motion sensing componentsuch as an accelerometer or tilt switch. In some embodiments, the audioamplifier 2813 and microphone 2810 are combined on a circuit board 2835with a sensor to measure tilt or angle of inclination or the presence ofmaterial in the dispensing channel of the container 2900.

Some embodiments determine the remaining volume using sound pulsesreflected from the top of the container. As shown in portion 2920 inFIG. 29, the audio amplifier 2813 transmits sound pulses into thecontainer 2900. As shown in portion 2925, the microphone 2810 can sensethe echo of the transmitted pulse off the other end of the container2900. Sound travels at different speeds through different materials, sothe amount of material in the container 2900 can be calculated based onthe elapsed time from the initiation of the pulse to the receipt of thepulse.

When the sensor detects a change in tilt or angle of inclination or thepresence of material in the dispensing channel of the container 2900 anda return to a non-inclined or non-motion state then the audio amplifier2813 sends a sound pulse, the reflections of which are received by themicrophone 2810, which measures the amount of material remaining in thecontainer 2900. Successive measurements allow for the determination ofthe depletion of liquid, gel, powder, or solid with each physicalchange/movement of the container 2900. As shown in portion 2930, thelevel of material in the container has dropped from 2925. This change isdetermined by the difference in the time a pulse takes to return to themicrophone 2810 through the material and through the air above thematerial.

In other embodiments, the sound pulse from the audio amplifier 2813reflects off the interface between the liquid and the air. The devicemeasures the time between audio amplifier 2813 sending the initial soundpulse and the time that the sound reflected from the interface takes toreach the microphone 2810. Given a value for the speed of sound in theparticular liquid, the sensor can determine the height of the liquid inthe container. If the cross sectional area of the container at allheights is known, the volume remaining in the container can bedetermined as a function of the height of the remaining liquid. Based onthe measurements of the reflected pulse, the volume of liquids, gels,powders, and solids dispensed can be calculated and stored on thecircuit board 2835 or transmitted from the circuit board 2835. Theinventory tracking computers of some embodiments, and internalprocessors on the circuit board 2835 of the device in other embodiments,determine the volume dispensed from a pour by subtracting the volumeafter the pour from the volume before the pour. The audio amplifier 2813and microphone 2810 can also determine when there is no longer apresence of liquids, gels, powders, or solids.

VII. Resistive Pressure to Measure Fluid Presence and Fluid Flow

FIGS. 31A-31B illustrate a spout 3105 of some embodiments that uses aphysical resistance sensor 3115 to calculate the amount of material,such as a liquid, gel, powder, or solid, dispensed from a container3100. As shown in FIG. 31A, a spout 3105 on a container 3100 includes aphysical resistance sensor 3115 in a dispensing channel 3140 attached toa circuit board 3135. The physical resistance sensor 3115 includes aphysical plane or material that is oblique in angle to the dispensingchannel in which the liquid, gel, powder, or solid flows out of thecontainer 3100. The material, when being dispensed, presses against thephysical resistance sensor 3115. FIG. 31A, in section 3120, shows, thedispensing channel 3140 with physical resistance sensor 3115 when nomaterial is flowing through the dispensing channel 3140 in someembodiments. FIG. 31A, in section 3125, shows container 3100 has beentilted such that material is flowing out through the dispensing channel3140, and the physical resistance sensor 3115 is in an active statemeasuring the force placed on it by the material. The physical plane ofmaterial will have resistive properties that are known and measurable sothat the amount of force exerted on the physical plane can be used todetermine the flow rate of liquid, gel, powder, or solid through thedispensing channel 3140. The amount of pressure and the time of thepressure are determined by the physical resistance sensor 3115. Thesensor information is combined with the known dimensions of thedispensing channel 3140 such that the flow rate of liquid, gel, powder,or solid is determined.

FIG. 31B illustrates how the flow of material through a dispensingchannel 3140 puts force on a physical resistance sensor 3115 and in turnindicates flow rate in some embodiments. As shown, when no material isdispensed (at 3160), the sensor 3115 is at full resistance. When thefull flow of material passes (at 3170) through the channel 3140, thesensor 3115 is at zero resistance. Any flow between no flow and fullflow creates (at 3165) partial resistance for the sensor 3115. Bycalibrating the resistance to various materials, the flow rate of thematerial can be determined.

VIII. Techniques to Reduce Physical Space Requirements in DispensingDevices

There are several methods of engineering to minimize the overallphysical size of any device. Two techniques include the use of flexibleelectronic circuit boards and the stacking of batteries above or belowthe plane of an electronic circuit board to reduce overall physicalspace requirements.

A. Flexible Circuit Boards to Minimize Mechanical Design Size

FIGS. 32A-32D illustrate flexible electronics boards that are used inconjunction with a plastic holder and holding clips to allow for thesmallest possible enclosures to house the electronics in someembodiments. Minimizing the size of the units enhances the overallmechanical engineering of pour detection devices. FIG. 32A illustrates atraditional, non-flexible electronics circuit board which allows forelectronics to be mounted on a single plane in some embodiments. FIG.32B illustrates a simple use of a flexible electronics circuit board(flex board) that can orient electronics on more than one plane in someembodiments. FIG. 32C illustrates how a flexible electronics circuitboard (flex board) can be “wrapped” onto a rigid plastic holder toprovide a stable platform for the placement and manufacturing of theelectronics boards into solid casings in some embodiments. In someembodiments, the circuit board can be held in place through chemicalbonding, frictional holds or other holding methods. FIG. 32D illustrateshow a flexible electronics circuit board (flex board) can be “wrapped”onto a rigid plastic holder and a supplemental compression holding clipcan be used to hold the circuit board onto the plastic holder in someembodiments. In some embodiments, the plastic holder itself can haveprong and slot structures that provide the compression to hold theflexible circuit board to the plastic holder.

B. Battery Holder to Minimize Physical Space

FIGS. 33A-33B illustrate a battery stacked above or below the plane of acircuit board in order to reduce the overall footprint of the devices ofsome embodiments. FIG. 33A illustrates, in a top down view, how abattery placed on a holding and/or contact bracket can be used to placea battery to power a circuit board above or underneath the circuit boardit is to power in some embodiments. FIG. 33B illustrates, in a sideview, the same use of a battery orientated in the same general plane ofa circuit board or slightly pitched in angular orientation depending onthe design requirements of the mechanical engineering in someembodiments.

IX. Computer System

FIG. 34 illustrates a computer system 3400 with which some embodimentsare implemented. Such a computer system includes various types ofcomputer readable mediums and interfaces for various other types ofcomputer readable mediums. Computer system 3400 includes a bus 3405, aprocessor 3410, a system memory 3415, a read-only memory (ROM) 3420, apermanent storage device 3425, input devices 3430, and output devices3435. The components of the computer system 3400 are electronic devicesthat automatically perform operations based on digital and/or analoginput signals.

One of ordinary skill in the art will recognize that the computer system3400 may be embodied in other specific forms without deviating from thespirit of the invention. For instance, the computer system may beimplemented using various specific devices either alone or incombination. For example, a cellular phone may include the input andoutput devices 3430 and 3435, while a remote personal computer (“PC”)may include the other devices 3405-3425, with the cellular phoneconnected to the PC through a cellular network that accesses the PCthrough its network connection 3440.

The bus 3405 collectively represents all system, peripheral, and chipsetbuses that communicatively connect the numerous internal devices of thecomputer system 3400. For instance, the bus 3405 communicativelyconnects the processor 3410 with the read-only memory 3420, the systemmemory 3415, and the permanent storage device 3425. From these variousmemory units, the processor 3410 retrieves instructions to execute anddata to process in order to execute the processes of the invention. Insome cases, the bus 3405 may include wireless and/or opticalcommunication pathways in addition to or in place of wired connections.For example, the input and/or output devices may be coupled to thesystem using a wireless local area network (W-LAN) connection,Bluetooth®, or some other wireless connection protocol or system.

The read-only-memory (ROM) 3420 stores static data and instructions thatare needed by the processor 3410 and other modules of the computersystem. The permanent storage device 3425, on the other hand, is aread-and-write memory device. This device is a non-volatile memory unitthat stores instructions and data even when the computer system 3400 isoff. Some embodiments use a mass-storage device (such as a magnetic oroptical disk and its corresponding disk drive) as the permanent storagedevice 3425.

Other embodiments use a removable storage device (such as a floppy disk,flash drive, or CD-ROM) as the permanent storage device. Like thepermanent storage device 3425, the system memory 3415 is aread-and-write memory device. However, unlike storage device 3425, thesystem memory is a volatile read-and-write memory, such as a randomaccess memory (RAM). The system memory stores some of the instructionsand data that the processor needs at runtime. In some embodiments, thesets of instructions used to implement invention's processes are storedin the system memory 3415, the permanent storage device 3425, and/or theread-only memory 3420.

The bus 3405 also connects to the input and output devices 3430 and3435. The input devices enable the user to communicate information andselect commands to the computer system. The input devices 3430 includealphanumeric keyboards and pointing devices (also called “cursor controldevices”). The input devices 3430 also include audio input devices(e.g., microphones, MIDI musical instruments, etc.) and video inputdevices (e.g., video cameras, still cameras, optical scanning devices,etc.). The output devices 3435 include printers, electronic displaydevices that display still or moving images, and electronic audiodevices that play audio generated by the computer system. For instance,these display devices may display a graphical user interface (GUI). Thedisplay devices include devices such as cathode ray tubes (CRT), liquidcrystal displays (LCD), plasma display panels (PDP), surface-conductionelectron-emitter displays (SED), etc. The audio devices include a PC'ssound card and speakers, a speaker on a cellular phone, a Bluetooth®earpiece, etc. Some or all of these output devices may be wirelessly oroptically connected to the computer system 3400.

Finally, as shown in FIG. 34, bus 3405 also couples computer 3400 to anetwork 3440 through a network adapter (not shown). In this manner, thecomputer can be a part of a network of computers (such as a local areanetwork (“LAN”), a wide area network (“WAN”), or an Intranet, or anetwork of networks, such as the internet. For example, the computer3400 may be coupled to a web server (network 3440) so that a web browserexecuting on the computer 3400 can interact with the web server as auser interacts with a GUI that operates in the web browser.

As mentioned above, the computer system 3400 may include one or more ofa variety of different computer-readable media (alternatively referredto as computer-readable storage media, machine-readable media, ormachine-readable storage media). Some examples of such computer-readablemedia include RAM, ROM, read-only compact discs (CD-ROM), recordablecompact discs (CD-R), rewritable compact discs (CD-RW), read-onlydigital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a varietyof recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.),flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.),magnetic and/or solid state hard drives, read-only and recordableblu-ray discs, ultra density optical discs, any other optical ormagnetic media, and floppy disks. The computer-readable media may storea computer program that is executable by at least one processor andincludes sets of instructions for performing various operations.

As used in this specification and any claims of this application, theterms “computer”, “server”, “processor”, and “memory” all refer toelectronic or other technological devices. These terms exclude people orgroups of people. For example as used in this application “server” is amachine, not a human being who serves some function. For the purposes ofthis specification, the terms display or displaying mean displaying onan electronic device.

As used in this specification and any claims of this application, theterms “computer readable medium” and “computer readable media” areentirely restricted to tangible, physical objects that store informationin a form that is readable by a computer. These terms exclude anywireless signals, wired download signals, and any other ephemeralsignals.

It should be recognized by one of ordinary skill in the art that any orall of the components of computer system 3400 may be used in conjunctionwith the invention. Moreover, one of ordinary skill in the art willappreciate that any other system configuration may also be used inconjunction with the invention or components of the invention.

Though the specification describes various components that work togetheras being in one or another place on the described devices, one ofordinary skill in the art will realize that in some embodiments, thepositions are reversed. For example, the illustrated embodiments of thesliding stems show the magnet on the sliding component and the magneticsensor and circuit board on the stationary component. However, in someembodiments, the magnet is on the stationary component and the magneticsensor and circuit board are on the sliding component.

While the invention has been described with reference to numerousspecific details, one of ordinary skill in the art will recognize thatthe invention can be embodied in other specific forms without departingfrom the spirit of the invention. For example, the monitoring devicesshown in this application could include features of the devicesdescribed in the concurrently-filed application Ser. No. 12/688,826,which is incorporated herein by reference. Furthermore, some embodimentsof the processes conceptually illustrated herein may omit certainoperations, combine certain operations, or perform certain operations ina different order than the order shown in the figures.

Furthermore, one of ordinary skill in the art would understand that theinvention is not to be limited by the foregoing illustrative details,but rather is to be defined by the appended claims.

What claimed is:
 1. A device for generating data regarding materialdispensed from a container to which the device is attached, the devicecomprising: an accelerometer circuit configured to: conduct ameasurement of an angle by which the container is tilted; determinewhether the angle exceeds a threshold angle based on the measurement; inresponse to determining that the angle does not exceed the thresholdangle, conduct at least one periodic measurement of the angle by whichthe container is tilted, wherein the at least one periodic measurementis conducted according to a first measurement frequency; in response todetermining that the angle exceeds the threshold angle: conduct at leastone periodic measurement of the angle by which the container is tilted,wherein the at least one periodic measurement is conducted according toa second measurement frequency; and generate a measured angle for eachof the at least one periodic measurement, the measured angle comprisingan angular value of the measurement and a time indication of when themeasurement was taken; a memory storing a plurality of dispensing rates,wherein each dispensing rate of the plurality of dispensing ratesassociated with a particular tilt angle; and a processor is configuredto: calculate a total dispensed amount of material from the container asa function of: at least one measured angle; and the dispensing ratecorresponding to the at least one measured angle; and cause the totaldispensed amount to be stored in the memory.
 2. The device of claim 1,wherein the device is a spout through which material is dispensed fromthe container.
 3. The device of claim 2, wherein the accelerometercircuit is aligned perpendicular to a flow channel of the spout.
 4. Thedevice of claim 2, wherein the accelerometer circuit is aligned parallelto the flow channel of the spout.
 5. The device of claim 1, wherein theaccelerometer circuit is attached to the inside of the container.
 6. Thedevice of claim 1, wherein the accelerometer circuit is attached to theoutside of the container.
 7. The device of claim 1, wherein theaccelerometer is further configured to measure at least one of a speedof movement of the container and a direction of movement of thecontainer.
 8. A method for measuring the amount of material dispensedfrom a container, the method comprising: conducting a measurement of anangle by which the container is tilted, wherein the measurement isperformed by an accelerometer circuit that is part of a device attachedto the container; determining, by the accelerometer circuit, whether theangle exceeds a threshold angle based on the measurement; in response todetermining that the angle does not exceed the threshold angle,conducting, by the accelerometer circuit, at least one periodicmeasurement of the angle by which the container is tilted, wherein theat least one periodic measurement is conducted according to a firstmeasurement frequency; in response to determining that the angle exceedsthe threshold angle: conducting, by the accelerometer circuit, at leastone periodic measurement of the angle by which the container is tilted,wherein the at least periodic measurement is conducted according to asecond measurement frequency; generating, by the accelerometer circuit,a measured angle for each of the at least one periodic measurements, themeasured angle comprising an angular value of the measurement and a timeindication of when the measurement was taken; calculating, by aprocessor, a total amount dispensed of material from the container as afunction of at least one measured angle and a dispensing ratecorresponding to the at least one measured angle; and storing the totalamount dispensed in a memory.
 9. The method of claim 8, whereincalculating the total amount dispensed of material from a containercomprises: determining, by the processor, a total dispensing time overwhich the container is tilted such that material is dispensed from thecontainer based on the time indication of the at least one measuredangle; calculating, by the processor, an average angle of the containerbased on the at least one angular value of the at least one measuredangle; based on a dispensing rate corresponding to the average angle andthe total dispensing time, calculating, by the processor, a totaldispensed amount of material dispensed from the container.
 10. Themethod of claim 9, wherein the dispensing rate assumes the materialdispensed is water.
 11. The method of claim 9, wherein calculating thetotal amount dispensed of material from the container is based on thedispensing rate corresponding to the average angle, the total dispensingtime, and reference information regarding the material.
 12. The methodof claim 8, wherein calculating the total amount dispensed of materialfrom the container comprises: for each of the at least one measuredangle, determining a dispensing rate corresponding to the measuredangle; for each of the at least one measured angle, calculating theamount of material dispensed from the container based on the measuredangle and the dispensing rate corresponding to the measured angle;summing the calculated amounts of material dispensed.
 13. The device ofclaim 1, wherein the processor is configured to calculate the totalamount dispensed from the container by: calculating an average anglebased on the at least one angular value of the at least one measuredangle; calculating a total dispensing time based on the time indicationof the at least one measured angle; and calculating a total dispensedamount based on the total dispensing time and the dispensing ratecorresponding to the average angle.
 14. The device of claim 13, whereinthe calculating the total dispensed amount is based on the dispensingrate corresponding to the average angle, the total dispensing time, andreference information associated with the material.
 15. The device ofclaim 1, wherein processor is configured to calculate the totaldispensed amount of material from the container by: for each of the atleast one measured angle, determining a dispensing rate corresponding tothe measured angle from the plurality of dispensing rates; for each ofthe at least one measured angle, calculating the amount of materialdispensed from the container based on the measured angle and thedispensing rate corresponding to the measured angle; and calculating atotal dispensed amount by summing the calculated amounts of materialdispensed.
 16. The device of claim 15, wherein the calculating theamount of material dispensed from the container for each of the at leastone measured angle is based on the measured angle, the dispensing ratecorresponding to the measured angle, and reference informationassociated with the material.
 17. The device of claim 1, wherein theprocessor is further configured to: calculate a total dispensing timebased on the time indication of each of the at least one measured angle;determine whether the total dispensing time exceeds a maximum dispensingtime; and in response to determining that the total dispensing timeexceeds the maximum dispensing time, discard the stored total dispensedamount.
 18. The device of claim 1, wherein the second measurementfrequency is greater than the first measurement frequency.
 19. Thedevice of claim 1, wherein the accelerometer circuit is furtherconfigured to: in response to determining that the angle exceeds thethreshold angle: conduct a specified number of periodic measurements ofthe angle by which the container is according to the second measurementfrequency; determine whether the angle does not exceed the thresholdangle for a particular number of consecutive measurements within thespecified number of periodic measurements; and in response todetermining that the angle does not exceed the threshold angle for theparticular number of consecutive measurements, conduct at least oneperiodic measurement of the angle by which the container is tiltedaccording to the first measurement frequency.
 20. The device of claim 7,wherein the processor is further configured to determine whether thematerial has been dispensed into a single recipient container or into aplurality of recipient containers as a function of the measurement of atleast one of the speed of movement of the container and the direction ofmovement of the container.
 21. The method of claim 8, furthercomprising: calculating a total dispensing time based on the timeindication of each of the at least one measured angle; determiningwhether the total dispensing time exceeds a maximum dispensing time; andin response to determining that the total dispensing time exceeds themaximum dispensing time, discarding the stored total dispensed amount.22. The method of claim 12, wherein the calculating the amount ofmaterial dispensed from the container for each of the at least onemeasured angle is based on the measured angle, the dispensing ratecorresponding to the measured angle, and reference informationassociated with the material.
 23. The method of claim 8, furthercomprising measuring at least one of a speed of movement of thecontainer and a direction of movement of the container.
 24. The methodof claim 23, further comprising determining whether the material hasbeen dispensed into a single recipient container or into a plurality ofrecipient containers as a function of the measurement of at least one ofthe speed of movement of the container and the direction of movement ofthe container.
 25. The method of claim 8, wherein the second measurementfrequency is greater than the first measurement frequency.
 26. Themethod of claim 8, further comprising: in response to determining thatthe angle exceeds the threshold angle: conducting a specified number ofperiodic measurements of the angle by which the container is accordingto the second measurement frequency; determining whether the angle doesnot exceed the threshold angle for a particular number of consecutivemeasurements within the specified number of periodic measurements; andin response to determining that the angle does not exceed the thresholdangle for the particular number of consecutive measurements, conductingat least one periodic measurement of the angle by which the container istilted according to the first measurement frequency.
 27. The method ofclaim 9, wherein the dispensing rate corresponds to an alcoholicbeverage.